[INFO] cloning repository https://github.com/FiaDot/rust-study
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/FiaDot/rust-study" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFiaDot%2Frust-study", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFiaDot%2Frust-study'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 009343cd783c8ccbfe8ed14379c280209a6847bd
[INFO] fixing FiaDot/rust-study against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFiaDot%2Frust-study" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/FiaDot/rust-study
[INFO] finished tweaking git repo https://github.com/FiaDot/rust-study
[INFO] tweaked toml for git repo https://github.com/FiaDot/rust-study written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/FiaDot/rust-study on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/FiaDot/rust-study already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 97ca5f0f6a4897a65ca17f0b52c0b5a9b8fcfb3c1b60959e499f5c1834b5dbac
[INFO] running `Command { std: "docker" "start" "97ca5f0f6a4897a65ca17f0b52c0b5a9b8fcfb3c1b60959e499f5c1834b5dbac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "97ca5f0f6a4897a65ca17f0b52c0b5a9b8fcfb3c1b60959e499f5c1834b5dbac" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "97ca5f0f6a4897a65ca17f0b52c0b5a9b8fcfb3c1b60959e499f5c1834b5dbac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "97ca5f0f6a4897a65ca17f0b52c0b5a9b8fcfb3c1b60959e499f5c1834b5dbac" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling libc v0.2.179
[INFO] [stderr]    Compiling proc-macro2 v1.0.104
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling syn v2.0.112
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking rust-study v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/main.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/_16_unsafe.rs (2 fixes)
[INFO] [stderr]        Fixed src/_15_macros.rs (15 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/_12_smart_pointers.rs:356:31
[INFO] [stdout]     |
[INFO] [stdout] 334 |         let branch = Rc::new(TreeNode {
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `branch` calls a custom destructor
[INFO] [stdout]     |             `branch` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 356 |         if let Some(parent) = leaf.parent.borrow().upgrade() {
[INFO] [stdout]     |                               --------------------^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 359 |     }  // branch 해제됨
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/rc.rs:3649:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:1582:0
[INFO] [stdout] note: `branch` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/rc.rs:3649:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/_16_unsafe.rs:336:34
[INFO] [stdout]     |
[INFO] [stdout] 336 |         println!("COUNTER = {}", COUNTER);
[INFO] [stdout]     |                                  ^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/_12_smart_pointers.rs:356:31
[INFO] [stdout]     |
[INFO] [stdout] 334 |         let branch = Rc::new(TreeNode {
[INFO] [stdout]     |             ------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `branch` calls a custom destructor
[INFO] [stdout]     |             `branch` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 356 |         if let Some(parent) = leaf.parent.borrow().upgrade() {
[INFO] [stdout]     |                               --------------------^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 359 |     }  // branch 해제됨
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/rc.rs:3649:0
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cell.rs:1582:0
[INFO] [stdout] note: `branch` invokes this custom destructor
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/rc.rs:3649:0
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/_16_unsafe.rs:336:34
[INFO] [stdout]     |
[INFO] [stdout] 336 |         println!("COUNTER = {}", COUNTER);
[INFO] [stdout]     |                                  ^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.46s
[INFO] [stderr] crater-edition-check: rust-study v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking rust-study v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Write` and `self`
[INFO] [stdout]    --> src/_14_modules.rs:172:19
[INFO] [stdout]     |
[INFO] [stdout] 172 |     use std::io::{self, Write};
[INFO] [stdout]     |                   ^^^^  ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `internal::helper`
[INFO] [stdout]    --> src/_14_modules.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |     pub use internal::helper;  // 외부에서 internal::helper 대신 helper로 접근
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `try_or_return`
[INFO] [stdout]    --> src/_15_macros.rs:265:14
[INFO] [stdout]     |
[INFO] [stdout] 265 | macro_rules! try_or_return {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Write` and `self`
[INFO] [stdout]    --> src/_14_modules.rs:172:19
[INFO] [stdout]     |
[INFO] [stdout] 172 |     use std::io::{self, Write};
[INFO] [stdout]     |                   ^^^^  ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `internal::helper`
[INFO] [stdout]    --> src/_14_modules.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |     pub use internal::helper;  // 외부에서 internal::helper 대신 helper로 접근
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `try_or_return`
[INFO] [stdout]    --> src/_15_macros.rs:265:14
[INFO] [stdout]     |
[INFO] [stdout] 265 | macro_rules! try_or_return {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/_03_borrowing.rs:198:9
[INFO] [stdout]     |
[INFO] [stdout] 198 |     let mut s = String::from("hello world");
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collected`
[INFO] [stdout]   --> src/_08_generics.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let collected: Vec<i32> = (0..5).collect();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collected`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/_09_error_handling.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let v = vec![1, 2, 3];
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/_10_collections.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let mut v: Vec<i32> = Vec::new();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/_10_collections.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let mut v: Vec<i32> = Vec::new();
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/_10_collections.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let mut s = String::new();
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/_10_collections.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let mut s = String::new();
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/_10_collections.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |     let s = String::from("안녕하세요");
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/_03_borrowing.rs:198:9
[INFO] [stdout]     |
[INFO] [stdout] 198 |     let mut s = String::from("hello world");
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/_12_smart_pointers.rs:182:9
[INFO] [stdout]     |
[INFO] [stdout] 182 |     let b = Cons(3, Rc::clone(&a));
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/_12_smart_pointers.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 186 |         let c = Cons(4, Rc::clone(&a));
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collected`
[INFO] [stdout]   --> src/_08_generics.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let collected: Vec<i32> = (0..5).collect();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collected`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/_15_macros.rs:161:17
[INFO] [stdout]     |
[INFO] [stdout] 161 |             let mut total = 0;
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 193 |     println!("sum empty: {}", sum!());
[INFO] [stdout]     |                               ------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `sum` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/_09_error_handling.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let v = vec![1, 2, 3];
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/_10_collections.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let mut v: Vec<i32> = Vec::new();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/_10_collections.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let mut v: Vec<i32> = Vec::new();
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/_10_collections.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let mut s = String::new();
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/_10_collections.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let mut s = String::new();
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/_10_collections.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |     let s = String::from("안녕하세요");
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/_12_smart_pointers.rs:182:9
[INFO] [stdout]     |
[INFO] [stdout] 182 |     let b = Cons(3, Rc::clone(&a));
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/_12_smart_pointers.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 186 |         let c = Cons(4, Rc::clone(&a));
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_word` is never used
[INFO] [stdout]    --> src/_04_lifetimes.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn first_word(s: &str) -> &str {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `level` and `announce_and_return_part` are never used
[INFO] [stdout]    --> src/_04_lifetimes.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 169 | impl<'a> ImportantExcerpt<'a> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] 170 |     // self 참조의 수명이 반환값에 자동 적용 (규칙 3)
[INFO] [stdout] 171 |     fn level(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn announce_and_return_part(&self, announcement: &str) -> &str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sign_in_count` is never read
[INFO] [stdout]   --> src/_05_structs.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct User {
[INFO] [stdout]    |        ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     sign_in_count: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `User` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `1` and `2` are never read
[INFO] [stdout]   --> src/_05_structs.rs:96:19
[INFO] [stdout]    |
[INFO] [stdout] 96 | struct Point(i32, i32, i32);
[INFO] [stdout]    |        -----      ^^^  ^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Kilometers` is never constructed
[INFO] [stdout]    --> src/_05_structs.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 117 |     struct Kilometers(f64);
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `South`, `East`, and `West` are never constructed
[INFO] [stdout]   --> src/_06_enums.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | enum Direction {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] 32 |     North,
[INFO] [stdout] 33 |     South,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 34 |     East,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 35 |     West,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Direction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NotFound` and `InternalError` are never constructed
[INFO] [stdout]   --> src/_06_enums.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     enum HttpStatus {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 51 |         Ok = 200,
[INFO] [stdout] 52 |         NotFound = 404,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 53 |         InternalError = 500,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HttpStatus` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Hsv` is never constructed
[INFO] [stdout]    --> src/_06_enums.rs:315:9
[INFO] [stdout]     |
[INFO] [stdout] 313 |     enum Color {
[INFO] [stdout]     |          ----- variant in this enum
[INFO] [stdout] 314 |         Rgb(i32, i32, i32),
[INFO] [stdout] 315 |         Hsv(i32, i32, i32),
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `content` is never read
[INFO] [stdout]   --> src/_07_traits.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct NewsArticle {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     content: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `reply` and `retweet` are never read
[INFO] [stdout]   --> src/_07_traits.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct Tweet {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 52 |     reply: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 53 |     retweet: bool,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/_07_traits.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct Person {
[INFO] [stdout]     |        ------ field in this struct
[INFO] [stdout] 109 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_display` is never used
[INFO] [stdout]    --> src/_07_traits.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 |     fn notify_display<T: Summary + Display>(item: &T) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `complex_function` is never used
[INFO] [stdout]    --> src/_07_traits.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn complex_function<T, U>(t: &T, u: &U) -> String
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `a` and `b` are never read
[INFO] [stdout]    --> src/_07_traits.rs:293:9
[INFO] [stdout]     |
[INFO] [stdout] 292 |     struct SmallData {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 293 |         a: i32,
[INFO] [stdout]     |         ^
[INFO] [stdout] 294 |         b: i32,
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SmallData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> src/_08_generics.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     struct Point<T> {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 85 |         x: T,
[INFO] [stdout]    |         ^
[INFO] [stdout] 86 |         y: T,
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> src/_08_generics.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |     struct MixedPoint<T, U> {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 97 |         x: T,
[INFO] [stdout]    |         ^
[INFO] [stdout] 98 |         y: U,
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MixedPoint` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `left`, `right`, and `value` are never read
[INFO] [stdout]    --> src/_08_generics.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 128 |         Node {
[INFO] [stdout]     |         ---- fields in this variant
[INFO] [stdout] 129 |             left: Box<BinaryTree<T>>,
[INFO] [stdout]     |             ^^^^
[INFO] [stdout] 130 |             right: Box<BinaryTree<T>>,
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout] 131 |             value: T,
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BinaryTree` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `y` is never used
[INFO] [stdout]    --> src/_08_generics.rs:162:12
[INFO] [stdout]     |
[INFO] [stdout] 157 |     impl<T> Point<T> {
[INFO] [stdout]     |     ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 162 |         fn y(&self) -> &T {
[INFO] [stdout]     |            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> src/_08_generics.rs:279:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |     struct Array<T, const N: usize> {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 279 |         data: [T; N],
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Array` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_long` is never used
[INFO] [stdout]    --> src/_09_error_handling.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn read_username_long() -> Result<String, io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_chained` is never used
[INFO] [stdout]    --> src/_09_error_handling.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 195 |     fn read_username_chained() -> Result<String, io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_fs` is never used
[INFO] [stdout]    --> src/_09_error_handling.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 |     fn read_username_fs() -> Result<String, io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReadConfigError` is never constructed
[INFO] [stdout]    --> src/_09_error_handling.rs:268:12
[INFO] [stdout]     |
[INFO] [stdout] 268 |     struct ReadConfigError {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/_10_collections.rs:101:13
[INFO] [stdout]     |
[INFO] [stdout] 101 |         Int(i32),
[INFO] [stdout]     |         --- ^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Cell` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 101 -         Int(i32),
[INFO] [stdout] 101 +         Int(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/_10_collections.rs:102:15
[INFO] [stdout]     |
[INFO] [stdout] 102 |         Float(f64),
[INFO] [stdout]     |         ----- ^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Cell` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 102 -         Float(f64),
[INFO] [stdout] 102 +         Float(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/_10_collections.rs:103:14
[INFO] [stdout]     |
[INFO] [stdout] 103 |         Text(String),
[INFO] [stdout]     |         ---- ^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Cell` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 103 -         Text(String),
[INFO] [stdout] 103 +         Text(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/_12_smart_pointers.rs:51:14
[INFO] [stdout]    |
[INFO] [stdout] 51 |         Cons(i32, Box<List>),
[INFO] [stdout]    |         ---- ^^^  ^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 51 -         Cons(i32, Box<List>),
[INFO] [stdout] 51 +         Cons((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/_12_smart_pointers.rs:171:14
[INFO] [stdout]     |
[INFO] [stdout] 171 |         Cons(i32, Rc<List>),
[INFO] [stdout]     |         ---- ^^^  ^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 171 -         Cons(i32, Rc<List>),
[INFO] [stdout] 171 +         Cons((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]    --> src/_12_smart_pointers.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 248 |     struct Node {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] 249 |         value: i32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `children` is never read
[INFO] [stdout]    --> src/_12_smart_pointers.rs:318:9
[INFO] [stdout]     |
[INFO] [stdout] 315 |     struct TreeNode {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 318 |         children: RefCell<Vec<Rc<TreeNode>>>, // 자식은 Rc로
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TreeNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `seat_at_table` is never used
[INFO] [stdout]   --> src/_14_modules.rs:39:16
[INFO] [stdout]    |
[INFO] [stdout] 39 |             fn seat_at_table() {
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_order` is never used
[INFO] [stdout]   --> src/_14_modules.rs:45:16
[INFO] [stdout]    |
[INFO] [stdout] 45 |             fn take_order() {}
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serve_order` is never used
[INFO] [stdout]   --> src/_14_modules.rs:46:16
[INFO] [stdout]    |
[INFO] [stdout] 46 |             fn serve_order() {}
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_payment` is never used
[INFO] [stdout]   --> src/_14_modules.rs:47:16
[INFO] [stdout]    |
[INFO] [stdout] 47 |             fn take_payment() {}
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo` is never used
[INFO] [stdout]   --> src/_14_modules.rs:98:16
[INFO] [stdout]    |
[INFO] [stdout] 98 |         pub fn demo() {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `seasonal_fruit` is never read
[INFO] [stdout]   --> src/_14_modules.rs:83:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |             pub struct Breakfast {
[INFO] [stdout]    |                        --------- field in this struct
[INFO] [stdout] 82 |                 pub toast: String,      // 공개
[INFO] [stdout] 83 |                 seasonal_fruit: String, // 비공개
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parent_visible` is never used
[INFO] [stdout]    --> src/_14_modules.rs:124:23
[INFO] [stdout]     |
[INFO] [stdout] 124 |         pub(super) fn parent_visible() {}     // 부모 모듈에서만
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `helper` is never used
[INFO] [stdout]    --> src/_14_modules.rs:179:16
[INFO] [stdout]     |
[INFO] [stdout] 179 |         pub fn helper() {}
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> src/_15_macros.rs:196:26
[INFO] [stdout]     |
[INFO] [stdout] 196 |     make_struct!(Point { x: i32, y: i32 });
[INFO] [stdout]     |                  -----   ^       ^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  fields in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `make_struct` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> src/_16_unsafe.rs:184:16
[INFO] [stdout]     |
[INFO] [stdout] 171 |     impl<T> MyVec<T> {
[INFO] [stdout]     |     ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 184 |         pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delayed_message` is never used
[INFO] [stdout]   --> src/_17_async.rs:43:10
[INFO] [stdout]    |
[INFO] [stdout] 43 | async fn delayed_message(msg: &str, delay_ms: u64) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `host`, `port`, `max_connections`, `timeout_secs`, and `tls_enabled` are never read
[INFO] [stdout]   --> src/_18_idioms.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     struct Server {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 40 |         host: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 41 |         port: u16,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 42 |         max_connections: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 43 |         timeout_secs: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 44 |         tls_enabled: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Server` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `timeout` is never used
[INFO] [stdout]   --> src/_18_idioms.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 57 |     impl ServerBuilder {
[INFO] [stdout]    |     ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 78 |         fn timeout(mut self, secs: u64) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/_18_idioms.rs:136:23
[INFO] [stdout]     |
[INFO] [stdout] 136 |     struct Kilometers(f64);
[INFO] [stdout]     |            ---------- ^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Kilometers` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_meters` is never used
[INFO] [stdout]    --> src/_18_idioms.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 144 |     impl Kilometers {
[INFO] [stdout]     |     --------------- method in this implementation
[INFO] [stdout] 145 |         fn to_meters(self) -> Meters {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> src/_18_idioms.rs:286:9
[INFO] [stdout]     |
[INFO] [stdout] 285 |     struct Point {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 286 |         x: i32,
[INFO] [stdout]     |         ^
[INFO] [stdout] 287 |         y: i32,
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]    --> src/_18_idioms.rs:327:9
[INFO] [stdout]     |
[INFO] [stdout] 326 |     struct CustomError {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 327 |         message: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CustomError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `debug`, `log_level`, `max_threads`, and `timeout_ms` are never read
[INFO] [stdout]    --> src/_18_idioms.rs:370:9
[INFO] [stdout]     |
[INFO] [stdout] 369 |     struct Config {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] 370 |         debug: bool,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 371 |         log_level: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 372 |         max_threads: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 373 |         timeout_ms: u64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Config` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `count`, `total`, and `name` are never read
[INFO] [stdout]    --> src/_18_idioms.rs:402:9
[INFO] [stdout]     |
[INFO] [stdout] 401 |     struct Stats {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 402 |         count: u32,      // 0
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 403 |         total: f64,      // 0.0
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 404 |         name: String,    // ""
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Stats` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add` is never used
[INFO] [stdout]    --> src/_19_testing.rs:305:8
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub fn add(a: i32, b: i32) -> i32 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `subtract` is never used
[INFO] [stdout]    --> src/_19_testing.rs:309:8
[INFO] [stdout]     |
[INFO] [stdout] 309 | pub fn subtract(a: i32, b: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `divide` is never used
[INFO] [stdout]    --> src/_19_testing.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn divide(a: i32, b: i32) -> i32 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_even` is never used
[INFO] [stdout]    --> src/_19_testing.rs:320:8
[INFO] [stdout]     |
[INFO] [stdout] 320 | pub fn is_even(n: i32) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/_15_macros.rs:161:17
[INFO] [stdout]     |
[INFO] [stdout] 161 |             let mut total = 0;
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] ...
[INFO] [stdout] 193 |     println!("sum empty: {}", sum!());
[INFO] [stdout]     |                               ------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `sum` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/_16_unsafe.rs:336:34
[INFO] [stdout]     |
[INFO] [stdout] 336 |         println!("COUNTER = {}", COUNTER);
[INFO] [stdout]     |                                  ^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust-study` (bin "rust-study") due to 1 previous error; 67 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: function `first_word` is never used
[INFO] [stdout]    --> src/_04_lifetimes.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn first_word(s: &str) -> &str {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `level` and `announce_and_return_part` are never used
[INFO] [stdout]    --> src/_04_lifetimes.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 169 | impl<'a> ImportantExcerpt<'a> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout] 170 |     // self 참조의 수명이 반환값에 자동 적용 (규칙 3)
[INFO] [stdout] 171 |     fn level(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn announce_and_return_part(&self, announcement: &str) -> &str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sign_in_count` is never read
[INFO] [stdout]   --> src/_05_structs.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct User {
[INFO] [stdout]    |        ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     sign_in_count: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `User` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `1` and `2` are never read
[INFO] [stdout]   --> src/_05_structs.rs:96:19
[INFO] [stdout]    |
[INFO] [stdout] 96 | struct Point(i32, i32, i32);
[INFO] [stdout]    |        -----      ^^^  ^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Kilometers` is never constructed
[INFO] [stdout]    --> src/_05_structs.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 117 |     struct Kilometers(f64);
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `South`, `East`, and `West` are never constructed
[INFO] [stdout]   --> src/_06_enums.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | enum Direction {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] 32 |     North,
[INFO] [stdout] 33 |     South,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 34 |     East,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 35 |     West,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Direction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NotFound` and `InternalError` are never constructed
[INFO] [stdout]   --> src/_06_enums.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     enum HttpStatus {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 51 |         Ok = 200,
[INFO] [stdout] 52 |         NotFound = 404,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 53 |         InternalError = 500,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HttpStatus` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Hsv` is never constructed
[INFO] [stdout]    --> src/_06_enums.rs:315:9
[INFO] [stdout]     |
[INFO] [stdout] 313 |     enum Color {
[INFO] [stdout]     |          ----- variant in this enum
[INFO] [stdout] 314 |         Rgb(i32, i32, i32),
[INFO] [stdout] 315 |         Hsv(i32, i32, i32),
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `content` is never read
[INFO] [stdout]   --> src/_07_traits.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct NewsArticle {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     content: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `reply` and `retweet` are never read
[INFO] [stdout]   --> src/_07_traits.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct Tweet {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 52 |     reply: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 53 |     retweet: bool,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/_07_traits.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct Person {
[INFO] [stdout]     |        ------ field in this struct
[INFO] [stdout] 109 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_display` is never used
[INFO] [stdout]    --> src/_07_traits.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 |     fn notify_display<T: Summary + Display>(item: &T) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `complex_function` is never used
[INFO] [stdout]    --> src/_07_traits.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 |     fn complex_function<T, U>(t: &T, u: &U) -> String
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `a` and `b` are never read
[INFO] [stdout]    --> src/_07_traits.rs:293:9
[INFO] [stdout]     |
[INFO] [stdout] 292 |     struct SmallData {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 293 |         a: i32,
[INFO] [stdout]     |         ^
[INFO] [stdout] 294 |         b: i32,
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SmallData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> src/_08_generics.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     struct Point<T> {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 85 |         x: T,
[INFO] [stdout]    |         ^
[INFO] [stdout] 86 |         y: T,
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> src/_08_generics.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |     struct MixedPoint<T, U> {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 97 |         x: T,
[INFO] [stdout]    |         ^
[INFO] [stdout] 98 |         y: U,
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MixedPoint` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `left`, `right`, and `value` are never read
[INFO] [stdout]    --> src/_08_generics.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 128 |         Node {
[INFO] [stdout]     |         ---- fields in this variant
[INFO] [stdout] 129 |             left: Box<BinaryTree<T>>,
[INFO] [stdout]     |             ^^^^
[INFO] [stdout] 130 |             right: Box<BinaryTree<T>>,
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout] 131 |             value: T,
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BinaryTree` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `y` is never used
[INFO] [stdout]    --> src/_08_generics.rs:162:12
[INFO] [stdout]     |
[INFO] [stdout] 157 |     impl<T> Point<T> {
[INFO] [stdout]     |     ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 162 |         fn y(&self) -> &T {
[INFO] [stdout]     |            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]    --> src/_08_generics.rs:279:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |     struct Array<T, const N: usize> {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 279 |         data: [T; N],
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Array` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_long` is never used
[INFO] [stdout]    --> src/_09_error_handling.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn read_username_long() -> Result<String, io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_chained` is never used
[INFO] [stdout]    --> src/_09_error_handling.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 195 |     fn read_username_chained() -> Result<String, io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_username_fs` is never used
[INFO] [stdout]    --> src/_09_error_handling.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 |     fn read_username_fs() -> Result<String, io::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReadConfigError` is never constructed
[INFO] [stdout]    --> src/_09_error_handling.rs:268:12
[INFO] [stdout]     |
[INFO] [stdout] 268 |     struct ReadConfigError {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/_10_collections.rs:101:13
[INFO] [stdout]     |
[INFO] [stdout] 101 |         Int(i32),
[INFO] [stdout]     |         --- ^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Cell` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 101 -         Int(i32),
[INFO] [stdout] 101 +         Int(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/_10_collections.rs:102:15
[INFO] [stdout]     |
[INFO] [stdout] 102 |         Float(f64),
[INFO] [stdout]     |         ----- ^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Cell` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 102 -         Float(f64),
[INFO] [stdout] 102 +         Float(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/_10_collections.rs:103:14
[INFO] [stdout]     |
[INFO] [stdout] 103 |         Text(String),
[INFO] [stdout]     |         ---- ^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Cell` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 103 -         Text(String),
[INFO] [stdout] 103 +         Text(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/_12_smart_pointers.rs:51:14
[INFO] [stdout]    |
[INFO] [stdout] 51 |         Cons(i32, Box<List>),
[INFO] [stdout]    |         ---- ^^^  ^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 51 -         Cons(i32, Box<List>),
[INFO] [stdout] 51 +         Cons((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/_12_smart_pointers.rs:171:14
[INFO] [stdout]     |
[INFO] [stdout] 171 |         Cons(i32, Rc<List>),
[INFO] [stdout]     |         ---- ^^^  ^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 171 -         Cons(i32, Rc<List>),
[INFO] [stdout] 171 +         Cons((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]    --> src/_12_smart_pointers.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 248 |     struct Node {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] 249 |         value: i32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `children` is never read
[INFO] [stdout]    --> src/_12_smart_pointers.rs:318:9
[INFO] [stdout]     |
[INFO] [stdout] 315 |     struct TreeNode {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 318 |         children: RefCell<Vec<Rc<TreeNode>>>, // 자식은 Rc로
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TreeNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `seat_at_table` is never used
[INFO] [stdout]   --> src/_14_modules.rs:39:16
[INFO] [stdout]    |
[INFO] [stdout] 39 |             fn seat_at_table() {
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_order` is never used
[INFO] [stdout]   --> src/_14_modules.rs:45:16
[INFO] [stdout]    |
[INFO] [stdout] 45 |             fn take_order() {}
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serve_order` is never used
[INFO] [stdout]   --> src/_14_modules.rs:46:16
[INFO] [stdout]    |
[INFO] [stdout] 46 |             fn serve_order() {}
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_payment` is never used
[INFO] [stdout]   --> src/_14_modules.rs:47:16
[INFO] [stdout]    |
[INFO] [stdout] 47 |             fn take_payment() {}
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demo` is never used
[INFO] [stdout]   --> src/_14_modules.rs:98:16
[INFO] [stdout]    |
[INFO] [stdout] 98 |         pub fn demo() {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `seasonal_fruit` is never read
[INFO] [stdout]   --> src/_14_modules.rs:83:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |             pub struct Breakfast {
[INFO] [stdout]    |                        --------- field in this struct
[INFO] [stdout] 82 |                 pub toast: String,      // 공개
[INFO] [stdout] 83 |                 seasonal_fruit: String, // 비공개
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parent_visible` is never used
[INFO] [stdout]    --> src/_14_modules.rs:124:23
[INFO] [stdout]     |
[INFO] [stdout] 124 |         pub(super) fn parent_visible() {}     // 부모 모듈에서만
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `helper` is never used
[INFO] [stdout]    --> src/_14_modules.rs:179:16
[INFO] [stdout]     |
[INFO] [stdout] 179 |         pub fn helper() {}
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> src/_15_macros.rs:196:26
[INFO] [stdout]     |
[INFO] [stdout] 196 |     make_struct!(Point { x: i32, y: i32 });
[INFO] [stdout]     |                  -----   ^       ^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  fields in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: this warning originates in the macro `make_struct` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> src/_16_unsafe.rs:184:16
[INFO] [stdout]     |
[INFO] [stdout] 171 |     impl<T> MyVec<T> {
[INFO] [stdout]     |     ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 184 |         pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delayed_message` is never used
[INFO] [stdout]   --> src/_17_async.rs:43:10
[INFO] [stdout]    |
[INFO] [stdout] 43 | async fn delayed_message(msg: &str, delay_ms: u64) {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `host`, `port`, `max_connections`, `timeout_secs`, and `tls_enabled` are never read
[INFO] [stdout]   --> src/_18_idioms.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     struct Server {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 40 |         host: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 41 |         port: u16,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 42 |         max_connections: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 43 |         timeout_secs: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 44 |         tls_enabled: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Server` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `timeout` is never used
[INFO] [stdout]   --> src/_18_idioms.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 57 |     impl ServerBuilder {
[INFO] [stdout]    |     ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 78 |         fn timeout(mut self, secs: u64) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/_18_idioms.rs:136:23
[INFO] [stdout]     |
[INFO] [stdout] 136 |     struct Kilometers(f64);
[INFO] [stdout]     |            ---------- ^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Kilometers` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_meters` is never used
[INFO] [stdout]    --> src/_18_idioms.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 144 |     impl Kilometers {
[INFO] [stdout]     |     --------------- method in this implementation
[INFO] [stdout] 145 |         fn to_meters(self) -> Meters {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> src/_18_idioms.rs:286:9
[INFO] [stdout]     |
[INFO] [stdout] 285 |     struct Point {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 286 |         x: i32,
[INFO] [stdout]     |         ^
[INFO] [stdout] 287 |         y: i32,
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `message` is never read
[INFO] [stdout]    --> src/_18_idioms.rs:327:9
[INFO] [stdout]     |
[INFO] [stdout] 326 |     struct CustomError {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 327 |         message: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CustomError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `debug`, `log_level`, `max_threads`, and `timeout_ms` are never read
[INFO] [stdout]    --> src/_18_idioms.rs:370:9
[INFO] [stdout]     |
[INFO] [stdout] 369 |     struct Config {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] 370 |         debug: bool,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 371 |         log_level: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 372 |         max_threads: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 373 |         timeout_ms: u64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Config` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `count`, `total`, and `name` are never read
[INFO] [stdout]    --> src/_18_idioms.rs:402:9
[INFO] [stdout]     |
[INFO] [stdout] 401 |     struct Stats {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 402 |         count: u32,      // 0
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 403 |         total: f64,      // 0.0
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 404 |         name: String,    // ""
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Stats` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_name` is never used
[INFO] [stdout]    --> src/_19_testing.rs:434:16
[INFO] [stdout]     |
[INFO] [stdout] 425 |     impl TestUser {
[INFO] [stdout]     |     ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 434 |         pub fn with_name(name: &str) -> Self {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> src/_16_unsafe.rs:336:34
[INFO] [stdout]     |
[INFO] [stdout] 336 |         println!("COUNTER = {}", COUNTER);
[INFO] [stdout]     |                                  ^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust-study` (bin "rust-study" test) due to 1 previous error; 64 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "97ca5f0f6a4897a65ca17f0b52c0b5a9b8fcfb3c1b60959e499f5c1834b5dbac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "97ca5f0f6a4897a65ca17f0b52c0b5a9b8fcfb3c1b60959e499f5c1834b5dbac", kill_on_drop: false }`
[INFO] [stdout] 97ca5f0f6a4897a65ca17f0b52c0b5a9b8fcfb3c1b60959e499f5c1834b5dbac
